# obtain_jwt_token是一个视图，其中完成了验证用户名密码签发token的业务
from rest_framework_jwt.views import obtain_jwt_token
from django.urls import path
from meiduo_admin.views.home_views import *
from meiduo_admin.views.user_views import *
from meiduo_admin.views.sku_views import *
from meiduo_admin.views.spu_views import *
from meiduo_admin.views.specs_views import *
from meiduo_admin.views.options_views import *
from meiduo_admin.views.images_views import *
from meiduo_admin.views.order_views import *
from meiduo_admin.views.permission_views import *
from meiduo_admin.views.groups_views import *
from meiduo_admin.views.admin_views import *
from meiduo_admin.views.brand_views import *


urlpatterns = [
    # 登陆接口，签发token
    path('authorizations/', obtain_jwt_token),
    # 用户总数统计
    path('statistical/total_count/', UserTotalCountView.as_view()),
    # 日增用户统计
    path('statistical/day_increment/', UserDayCountView.as_view()),
    # 日活跃用户统计
    path('statistical/day_active/', UserActiveCountView.as_view()),
    # 日下单用户统计
    path('statistical/day_orders/', UserOrderCountView.as_view()),


    # 月增用户数量统计
    path('statistical/month_increment/', UserMonthCountView.as_view()),
    # 日分类商品访问量
    path('statistical/goods_day_views/', GoodsDayView.as_view()),


    # 获取用户列表数据 和 新建用户
    path('users/', UserView.as_view()),

    # SKU列表数据, 新增SKU
    path('skus/', SKUGoodsView.as_view({
        'get': 'list', 
        'post': 'create'
        })), 

    path('skus/<int:pk>/', SKUGoodsView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
        })), 

    # SKU可选三级分类
    path('skus/categories/', SKUCategorieView.as_view()),
    # SPU可选列表数据
    path('goods/simple/', SPUSimpleView.as_view()),
    # SPU规格和选项
    path('goods/<int:pk>/specs/', SPUSpecView.as_view()), 


    # SPU管理
    path('goods/', SPUModelView.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('goods/<int:pk>/', SPUModelView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),

    # 新增SPU需要的品牌
    path('goods/brands/simple/', BrandsSimpleView.as_view()),

    # 新增SPU需要的一级分类
    path('goods/channel/categories/', GoodsCategoryView.as_view()),
    # 新增SPU需要的二级三级分类
    path('goods/channel/categories/<int:pk>/', GoodsCategoryView.as_view()),

    # 规格管理
    path('goods/specs/', SpecsView.as_view({
        'get': 'list',
        'post': 'create'
    })),
        path('goods/specs/<int:pk>/', SpecsView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),

    # 规格选项管理
    path('specs/options/', OptionsView.as_view({
        'get': 'list',
        'post': 'create'
    })),
    # 新建规格时可选规格数据
    path('goods/specs/simple/', OptionSimpleView.as_view()),

    path('specs/options/<int:pk>/', OptionsView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),

    # 图片管理
    path('skus/images/', ImagesView.as_view({
        'get': 'list',
        'post': 'create'
    })),
    # 新建图片可选sku
    path('skus/simple/', ImagesView.as_view({
        'get': 'simple'
    })),
    path('skus/images/<int:pk>/', ImagesView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),

    # 订单列表
    path('orders/', OrderListView.as_view()),
    # 订单详情
    path('orders/<str:pk>/', OrderView.as_view({
        'get': 'retrieve'
    })),
    # 订单状态修改
    path('orders/<str:pk>/status/', OrderListView.as_view()),

    # 权限管理
    path('permission/perms/', PermissionView.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('permission/perms/<int:pk>/', PermissionView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),
    # 权限可选列表
    path('permission/content_types/', PermissionView.as_view({
        'get': 'content_types'
    })),
    # 用户组管理
    path('permission/groups/', GroupsView.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('permission/groups/<int:pk>/', GroupsView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),
    # 新增分组可选权限列表
    path('permission/simple/', GroupsView.as_view({
        'get': 'simple',
    })),

    # 管理员管理
    path('permission/admins/', AdminView.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('permission/admins/<int:pk>/', AdminView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),
    # 可选用户组
    path('permission/groups/simple/', GroupListView.as_view()),

    # 品牌管理
    path('goods/brands/', BrandView.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('goods/brands/<int:pk>/', BrandView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),
]